package com.ewhale.feitengguest.widget;

import android.app.Dialog;
import android.content.Context;
import android.graphics.Color;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.TextPaint;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.view.View;
import android.widget.TextView;

import androidx.annotation.NonNull;

import com.ewhale.feitengguest.R;

import org.jetbrains.annotations.NotNull;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

public class PrivacyDialog extends Dialog {

    @BindView(R.id.tv_content)
    TextView mTvContent;

    public PrivacyDialog(@NonNull Context context) {
        super(context, com.simga.library.R.style.Dialog);
        this.setCanceledOnTouchOutside(false);
        this.setCancelable(false);
        setContentView(R.layout.dialog_privacy);
        ButterKnife.bind(this);
        mTvContent.setHighlightColor(context.getResources().getColor(android.R.color.transparent));
        String contentText = "【飞腾赚客APP】深知个人信息对你的重要性，我们尊重并保护所有用户的个人隐私权。特此制定本《隐私保护协议》与《用户协议》，希望你在使用【飞腾赚客APP】及相关服务前仔细阅读并理解本《隐私保护协议》。 为了给你提供更准确、更有个性化的服务，本应用会按照本《隐私保护协议》的规定收集、使用、存储、共享、披露及保护你的个人信息。如果你不同意本《隐私保护协议》，我们将无法为你提供完整的产品和服务，你也可以选择停止使用。你一旦选择使用【飞腾赚客APP】软件及相关服务，即视为你接受和认可我们按照本政策对你的相关信息进行处理。一、用户提供的信息当你在飞腾赚客APP平台进行用户注册登记时，你需向本平台提供一些个人资料，包括账户昵称、密码、电子邮箱、手机号码等信息。";
        SpannableStringBuilder spannable = new SpannableStringBuilder(contentText);
        //文字点击
        spannable.setSpan(new firstClick(), 45, 53
                , Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        spannable.setSpan(new firstClick(), 126, 134
                , Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        spannable.setSpan(new firstClick(), 168, 176
                , Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        spannable.setSpan(new secondClick(), 54, 60
                , Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        //一定要记得设置，不然点击不生效
        mTvContent.setMovementMethod(LinkMovementMethod.getInstance());
        mTvContent.setText(spannable);
    }

    private class firstClick extends ClickableSpan {
        @Override
        public void onClick(@NotNull View widget) {
            if (listenter != null) {
                listenter.onClickyinsi();
            }
        }

        @Override
        public void updateDrawState(TextPaint ds) {
            ds.setColor(Color.BLUE);
        }
    }
    private class secondClick extends ClickableSpan {
        @Override
        public void onClick(View widget) {
            if (listenter != null) {
                listenter.onClickYonghu();
            }
        }
        @Override
        public void updateDrawState(TextPaint ds) {
            ds.setColor(Color.BLUE);
        }
    }

    @OnClick({R.id.btn_noagree, R.id.btn_agree})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.btn_noagree:
                if (listenter != null) {
                    listenter.onClickNoAgree();
                }
                break;
            case R.id.btn_agree:
                if (listenter != null) {
                    listenter.onClickAgree();
                }
                dismiss();
                break;
        }
    }


    private onClickListenter listenter;

    public void setListenter(onClickListenter listenter) {
        this.listenter = listenter;
    }

    public interface onClickListenter {
        void onClickYonghu();

        void onClickyinsi();

        void onClickAgree();

        void onClickNoAgree();
    }

}
